/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package adsreis.com.Controls;


import adsreis.com.Beans.FuncionariosBean;
import adsreis.com.acessobd.AcessoMySql;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Pauroenriki
 */
public class FuncionariosControl {
    PreparedStatement pstm;
    ResultSet rs;
    String cadastraFuncionario = "INSERT INTO FUNCIONARIOS (NOME, CPF, RG, ENDERECO, BAIRRO, TELEFONE, CELULAR, OPERADORA, EMAIL, FUNCAO, USUARIO, SENHA, ACESSO) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
    String consultaFuncionario = "SELECT * FROM FUNCIONARIOS WHERE NOME LIKE ?";
    String alteraFuncionario = "UPDATE FUNCIONARIOS SET NOME = ?, CPF =?, RG =?, ENDERECO =?, BAIRRO =?, TELEFONE =?, CELULAR =?, OPERADORA =?, EMAIL =?, FUNCAO =?, USUARIO = ?, SENHA = ?, ACESSO =? WHERE CODFUNCIONARIO =?";
    String excluiFuncionario = "DELETE FROM FUNCIONARIOS WHERE CODFUNCIONARIO = ?";
    String buscaUltimoCodigo ="SELECT MAX(CODFUNCIONARIO) AS CODFUNCIONARIO FROM FUNCIONARIOS";
    
    public FuncionariosControl(){        
    }
    
     public void cadastrarFuncionario(FuncionariosBean funcionario){
       try{
           AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(cadastraFuncionario);
           pstm.setString(1,funcionario.getNome());
           pstm.setString(2,funcionario.getCpf());
           pstm.setString(3,funcionario.getRg());
           pstm.setString(4,funcionario.getEndereco());
           pstm.setString(5,funcionario.getBairro());
           pstm.setString(6,funcionario.getTelefone());
           pstm.setString(7,funcionario.getCelular());
           pstm.setString(8,funcionario.getOperadora());
           pstm.setString(9, funcionario.getEmail());
           pstm.setString(10,funcionario.getFuncao());
           pstm.setString(11,funcionario.getUser());
           pstm.setString(12,funcionario.getSenha());
           pstm.setInt(13, funcionario.getAcesso());
           pstm.executeUpdate();
           mysql.desconectar();
           
       } catch (Exception e){
           e.printStackTrace();
       }
    }
      public List<FuncionariosBean> listarFuncionarios(String nome){
        List<FuncionariosBean> funcionarios = new ArrayList();
        try{
            AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(consultaFuncionario);
           pstm.setString(1, nome);
           rs = pstm.executeQuery();
           FuncionariosBean func;
           while (rs.next()){
               func = new FuncionariosBean();
               func.setCodFuncionario(rs.getInt("codfuncionario"));
               func.setNome(rs.getString("nome"));
               func.setCpf(rs.getString("cpf"));
               func.setRg(rs.getString("rg"));
               func.setEndereco(rs.getString("endereco"));
               func.setBairro(rs.getString("bairro"));
               func.setTelefone(rs.getString("telefone"));
               func.setCelular(rs.getString("celular"));
               func.setOperadora(rs.getString("operadora"));
               func.setEmail(rs.getString("email"));
               func.setFuncao(rs.getString("funcao"));
               func.setUser(rs.getString("usuario"));
               func.setSenha(rs.getString("senha"));
               func.setAcesso(rs.getInt("acesso"));
               funcionarios.add(func);              
           }
           mysql.desconectar();
        }catch (Exception e){
            e.printStackTrace();
        }
        return funcionarios;        
    }
      
     public void excluirFuncionario(int codigoFuncionario){
        try{
            AcessoMySql mysql = new AcessoMySql();
            pstm = mysql.conectar().prepareStatement(excluiFuncionario);
            pstm.setInt(1, codigoFuncionario);
            pstm.executeUpdate();
            mysql.desconectar();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
     
     public void alterarFuncionario(FuncionariosBean funcionario){
        try{
            AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(alteraFuncionario);           
           pstm.setString(1,funcionario.getNome());
           pstm.setString(2,funcionario.getCpf());
           pstm.setString(3,funcionario.getRg());
           pstm.setString(4,funcionario.getEndereco());
           pstm.setString(5,funcionario.getBairro());
           pstm.setString(6,funcionario.getTelefone());
           pstm.setString(7,funcionario.getCelular());
           pstm.setString(8,funcionario.getOperadora());
           pstm.setString(9, funcionario.getEmail());
           pstm.setString(10, funcionario.getFuncao());
           pstm.setString(11,funcionario.getUser());
           pstm.setString(12,funcionario.getSenha());
           pstm.setInt(13, funcionario.getAcesso());
           pstm.setInt(14,funcionario.getCodFuncionario());
           pstm.executeUpdate();
           mysql.desconectar();           
        }catch (Exception e){
            e.printStackTrace();
    }
    }
     
     public int buscarCodigoUltimoFuncionario(){
        try{
            AcessoMySql mysql = new AcessoMySql();
            pstm = mysql.conectar().prepareStatement(buscaUltimoCodigo);
            rs = pstm.executeQuery();
            if (rs.last()){
                return rs.getInt("codfuncionario");                
            }
            mysql.desconectar();
        }catch (SQLException ex){
            ex.printStackTrace();
        }
        return 0;
    }
      
      
}
